import QtQuick 2.12
import QtQuick.Window 2.12
/*
QML中的附加属性是一种机制，允许元素对象访问逾期相关联的属性。即使这些属性，并不属于该元素对象的类型。
即使原始元素对象类型没有定义这些属性，也可以通过附加属性来扩展其功能。
本例程采用附加属性Keys来处理可视元素的键盘事件。
*/
Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")
    //添加Rectangle,填充颜色黄色，设置焦点；这意味着用户可以通过键盘输入与其互动,访问
    Rectangle {
        width: 100
        height: 100
        x:parent.width/2 - width/2
        y:parent.height/2 - height/2
        color: "yellow"
        focus: true
        //访问附加属性Keys按键信号处理，这里使用键盘上下左右按键，来触发Rectan移动，
        //也可以访问信号按下，再判断是哪一个按键。附加属性可提供代码复用，减少冗余，使代码易于维护
        Keys.onLeftPressed: x -= 100
        Keys.onRightPressed: x += 100
        Keys.onUpPressed: y -= 100
        Keys.onDownPressed: y += 100
    }
}
